#ifndef GLOBAL_H
#define GLOBAL_H
#include <memory>
#include <ctime>

#define CHAT_SERVER "chat_server"
#define USER_LIST_PREFIX "user_list_"

//在redis中的统计本服务连接数与本服务用户set的key_name



class tcp_connection;
struct full_msg{
    unsigned short message_id;
    unsigned short body_len;
    std::shared_ptr<tcp_connection> tcp_con;    //哪个连接发来的消息
    
    char *body;
    ~full_msg(){
        //这里面的body数据需要自己管控
        delete body;
    }
};
using u_short=unsigned short;

//收到的包类型
enum recv_package_id{
    CHAT_LOGIN=0,   
    SEARCH_USER,    //查找用户
    ADD_FRIEND_Apply,   //添加好友申请
    ADD_FRIEND_NOTIFY,  //这个不用，存粹是为了占位
    FRIEND_APPLY_RES,   //好友申请的结果
    FRIEND_APPLY_NOTIFY, //接收端处理结果后的通知---这个不用，为了占位
    CHAT_TEXT_MSG,  //发送聊天消息
    RESPONSE_NOTIFY_CHAT_TEXT_MSG,   //客户端响应收到的聊天消息

};

//回的包类型
enum response_package_id{
    RESPONSE_CHAT_LOGIN=0,
    RESPONSE_SEARCH_USER,
    RESPONSE_ADD_FRIEND_Apply,
    RESPONSE_ADD_FRIEND_NOTIFY,
    RESPONSE_FRIEND_APPLY_RES,
    RESPONSE_FRIEND_APPLY_NOTIFY,
    RESPONSE_USER_INFO,   //推送好友列表 自己发起的好友申请列表 他人发起的好友申请
    RESPONSE_CHAT_TEXT_MSG, ////服务器响应客户端发送的聊天消息
    NOTIFY_CHAT_TEXT_MSG,  //服务器发送的聊天消息的通知---甚至以后的通知都会通过这个发送

};

enum chatType{
    PLAIN_TEXT=0,   //普通文本
    IMAGE,  //静态图片
    file,
};


#endif

